home *** CD-ROM | disk | FTP | other *** search
- Bugs in PA0GRI 920725v2.0l/920730v2.0m,
- Fixes through N1BEE 921225 v0.85-beta:
-
- 1. N1BEE's DFAR kludge is now interacting with the Borland optimizer in
- a bad way, at least as of BC++ 3.1. Workaround: change "-Ff=255" on the
- CFLAGS line in MAKEFILE to "-Ff". This affects only conditional
- compilation under BC++ 2.0 and later.
-
- 2. N1BEE's MKNAME.C module must be modified for BC++ 3.1, which defines
- __BORLANDC__ as 0x0410. Extensive changes have been made.
-
- 3. In KISS.C, function kiss_ioctl(), "int rval = 0" must be corrected to
- "int32 rval = 0L" for support of high baud rates.
-
- 4. In I8250.C, function asy_speed(), "115200L" should be added as an
- allowed speed. (Why not?)
-
- 5. In AX25.C, functions ax_lookup(), ax_add(), and ax_drop(), the line
- "memcmp(xtarget,target,AXALEN);" will cause digipeating to be non-functional.
- It must be corrected to read "memcpy(xtarget,target,AXALEN);" for any AX.25
- digipeating to work.
-
- 6. In NR4TIMER.C, function nr4ackit(), there must be a call to stop the
- acknowledgment timer, "stop_timer(&cb->tack)". Otherwise, ACKs will be
- sent every time the Nr4acktime timer expires, by default every 3 seconds,
- and the channel will be clogged with redundant ACKs. The stop_timer()
- call is best placed as the first executable statement in nr4ackit().
-
- 7. In NETUSER.C, function inet_ntoa(), there must be a call to resolve_a()
- and some code added to make domain translation work at all. Attempting to
- grep on the global flag for domain translation "DTranslate" produces no
- meaningful references to it. Apparently, all code which tests the state of
- this flag on display of IP addresses had been removed.
-
- 8. In DOMAIN.C, function resolve_a(), the shortened form of host name,
- used when the DVerbose flag is off, has been recoded. Previously, the
- host name was scanned from the left and truncated at the first dot. This
- would cause host names such as "switch.w1cg-9.ampr.org" to be displayed
- as "switch", which is ambiguous. The changed behavior is to truncate the
- current domain suffix (usually "ampr.org.") from the right side of the
- host name if it is present, and to display the fully qualified domain name
- if the current domain suffix is not found; a trailing period is now shown
- in order to indicate a fully qualified name. For example, with the domain
- suffix set to "ampr.org.": "n1bee.ampr.org", "switch.w1cg-9.ampr.org", and
- "ucsd.edu" would be shortened to "n1bee", "switch.w1cg-9", and "ucsd.edu.",
- respectively.
-
- 9. In NR4HDR.C, function htonnr4(), netrom "info ack" frames were being
- sent out with an uninitialized third byte field, usually used for "txseq"
- but not significant on an "info ack" type frame. This byte is now always
- set to zero, which is what real netrom and G8BPQ do. (NR4DUMP.C has also
- been modified to show parentheses around this field when tracing, since
- the field really should not be regarded as significant.)
-
- 10. I am still working on trying to fix the problem in the netrom code
- which results in the undesirable behavior of retransmitting the transmit
- queue whenever any ack frame is received, regardless of whether such
- retransmission is necessary.
-
- 11. Extensive changes have been made throughout POP2SERV.C and POP3SERV.C
- in order to avoid calling the Borland stat() function, which crashes under
- a multitasker if the file being checked does not exist. This is a Borland
- bug, since one of the main purposes of stat() is to check for existence of
- a file. In all cases, the fsize() function from BMUTIL.C was used in the
- place of stat(); fsize() is no longer declared "static" in BMUTIL.C, and is
- now prototyped in FILES.H. (There may be some merit, in the long term, to
- replacing Borland's stat() function with a stable one, but I am not anxious
- to repeat the experience I already have in trying to replace __MKNAME().)
-
- 12. Fixes have been made in POP3SERV.C to correct the response messages,
- which previously were all terminated with "\r\n", to be now terminated with
- just "\n". Since the socket is opened in ASCII mode instead of binary, any
- occurrence of "\n" is changed to "\r\n" in the lower level usputc() code,
- and lines were really being terminated with CRCRLF instead of CRLF as is
- required by RFC1225. Oddly, this made the POP3 client in NOS incompatible
- with the POP3 server in NOS. An explicit call to sockmode() to force
- ASCII mode is now included, although it is really redundant.
-
- 13. In PC.C, function bioscnt(), the BIOS tick count is now obtained from a
- call to the BIOS time service instead of directly reading the BIOS data area
- when running under OS/2 DOS emulation. This is necessary to prevent huge
- jumps from occuring when the DOS window in which NOS is running is brought
- into and out of focus. Also in PC.C, function pctick(), the test for the
- BIOS tick counter wraparound at midnight has been recoded to take into
- account the problem under OS/2 where successive results from reading the
- BIOS tick count are not monotonically nondecreasing across the instant of
- the window acquiring focus.
-